package cn.itcalvin.sncoal.cth.service;

import cn.itcalvin.sncoal.cth.pojo.common.ReqLong;
import cn.itcalvin.sncoal.cth.pojo.req.analyse.ReqAnalyseGetZbDetails;
import cn.itcalvin.sncoal.cth.pojo.response.analyse.RespAnalyse;
import cn.itcalvin.sncoal.cth.pojo.response.analyse.RespAnalyseCard;
import cn.itcalvin.sncoal.cth.pojo.response.analyse.RespAnalyseCardDetails;

import java.util.List;
import java.util.Map;

public interface AnalyseService {
    /**
     * 获取某个任务的各个系统评分列表查询
     * @param reqId
     * @return
     */
    RespAnalyse oneMineAllSystem(ReqLong reqId);

    /**
     * 获取是否存在需要处理的评分
     * @return
     */
    Integer  getNotice();

    /**
     * 矿井最后一次所有系统的得分
     * 最后一次两矿各系统的柱状图（X坐标是系统，Y坐标是得分）
     * 矿井查询自己的，矿业公司查询所属矿井的
     * @return
     */
    RespAnalyse mineAllSystemLast();

    /**
     * 多个矿井某系统的得分趋势图 （按月，如果一个月有多次，取分数最高的一次）（需查询条件-选择某系统，时间范围是近一年，X坐标是日期，Y坐标是得分）
     * （X坐标是日期，Y坐标是得分）
     * 矿井查询自己的，矿业公司查询所属矿井的
     * @param reqId 系统ID
     * @return
     */
    RespAnalyse mineOneSystem(ReqLong reqId);

    /**
     * 多个矿井总分分趋势图
     * @return
     */
    RespAnalyse mineDateScore();

    /**
     * 最后一次评测的总分
     * @return
     */
    RespAnalyseCard getStatData();

    /**
     * 两矿最后一次指标得分情况
     * @return
     */
    Map<String, List<RespAnalyseCard>> getStatDataCard();

    /**
     * 某指标得分明细
     * @param reqAnalyseGetZbDetails
     * @return
     */
    List<RespAnalyseCardDetails> getCardDetails(ReqAnalyseGetZbDetails reqAnalyseGetZbDetails);

    /**
     * 某指标明细趋势
     * @param reqId
     * @return
     */
    RespAnalyse oneZbDetails(ReqLong reqId);
}
